#pragma
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>

typedef int SLDataType;
typedef struct SList
{
	SLDataType val;
	struct SList* next;
}SL;

SL* SLBuyNode(SLDataType x);

void SLPrint(SL* phead);

void SLPushBack(SL** pphead, SLDataType x);
void SLPushFront(SL** pphead, SLDataType x);

void SLPopBack(SL** pphead);
void SLPopFront(SL** pphead);

SL* SLFind(SL* phead,SLDataType x);

void SLInsert(SL** pphead,SL* pos,SLDataType x);
void SLInsertAfter(SL* pos,SLDataType x);

void SLErase(SL** pphead, SL* pos);
void SLEraseAfter(SL* pos);

void SLDestroy(SL** pphead);

